package alkuperainen;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.util.ArrayList;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author juhohaar
 */
public class KurssiTest {

    public KurssiTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of getNimi method, of class Kurssi.
     */
    @Test
    public void testGetNimi() {
        System.out.println("getNimi");
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        String expResult = "ohtu";
        String result = instance.getNimi();
        assertEquals(expResult, result);
    }

    /**
     * Test of setNimi method, of class Kurssi.
     */
    @Test
    public void testSetNimi() {
        System.out.println("setNimi");
        String nimi = "ohtupro";
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        instance.setNimi(nimi);
        assertEquals("ohtupro", instance.getNimi());
    }

    /**
     * Test of getKurssinro method, of class Kurssi.
     */
    @Test
    public void testGetKurssinro() {
        System.out.println("getKurssinro");
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        int expResult = 1;
        int result = instance.getKurssinro();
        assertEquals(expResult, result);
    }

    /**
     * Test of setKurssinro method, of class Kurssi.
     */
    @Test
    public void testSetKurssinro() {
        System.out.println("setKurssinro");
        int kurssinro = 2;
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        instance.setKurssinro(kurssinro);

        assertEquals(2, instance.getKurssinro());
    }

    /**
     * Test of getOp method, of class Kurssi.
     */
    @Test
    public void testGetOp() {
        System.out.println("getOp");
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        int expResult = 4;
        int result = instance.getOp();
        assertEquals(expResult, result);
    }

    /**
     * Test of setOp method, of class Kurssi.
     */
    @Test
    public void testSetOp() {
        System.out.println("setOp");
        int op = 5;
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        instance.setOp(op);
        assertEquals(5, instance.getOp());
    }

    /**
     * Test of getAlkupaiva method, of class Kurssi.
     */
    @Test
    public void testGetAlkupaiva() {
        System.out.println("getAlkupaiva");
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        String expResult = "1.1.2011";
        String result = instance.getAlkupaiva();
        assertEquals(expResult, result);
    }

    /**
     * Test of getLoppupaiva method, of class Kurssi.
     */
    @Test
    public void testGetLoppupaiva() {
        System.out.println("getLoppupaiva");
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        String expResult = "2.2.2011";
        String result = instance.getLoppupaiva();
        assertEquals(expResult, result);
    }

    /**
     * Test of getOpiskelijat method, of class Kurssi.
     */
    @Test
    public void testGetOpiskelijat() {
        System.out.println("getOpiskelijat");

        Opiskelija o1 = new Opiskelija("Matti", 123);
        Opiskelija o2 = new Opiskelija("Maija", 456);

        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        instance.lisaaOpiskelija(o1);
        instance.lisaaOpiskelija(o2);

        ArrayList<Opiskelija> expResult = new ArrayList<Opiskelija>();
        expResult.add(o1);
        expResult.add(o2);

        ArrayList<Opiskelija> result = instance.getOpiskelijat();


        assertEquals(expResult.get(0).getOpnro(), result.get(0).getOpnro());
        assertEquals(expResult.get(1).getOpnro(), result.get(1).getOpnro());
        assertEquals(expResult.get(0).getNimi(), result.get(0).getNimi());
        assertEquals(expResult.get(1).getNimi(), result.get(1).getNimi());

    }

    /**
     * Test of getTapahtumat method, of class Kurssi.
     */
    @Test
    public void testGetTapahtumat() {
        System.out.println("getTapahtumat");
        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);

        Tapahtuma t1 = new Tapahtuma("Ohtu Luento", "A111", 1, 10, 15, 1, 1, 2011, 11, 00, 1, 5, 2011);
        Tapahtuma t2 = new Tapahtuma("Ohtu Luento", "A111", 1, 12, 15, 3, 1, 2011, 13, 59, 3, 5, 2011);
        Tapahtuma t3 = new Tapahtuma("Ohtu Luento", "A111", 1, 12, 15, 2, 1, 2011, 13, 59, 3, 5, 2011);

        instance.lisaaTapahtuma(t1);instance.lisaaTapahtuma(t2);instance.lisaaTapahtuma(t3);
        ArrayList<Tapahtuma> result = instance.getTapahtumat();

        ArrayList<Tapahtuma> expResult = new ArrayList<Tapahtuma>();
        expResult.add(t1);expResult.add(t2);expResult.add(t3);

        for(int i=0;i<result.size();i++){
            assertEquals(expResult.get(i).getAlkuaika(),result.get(i).getAlkuaika());
            assertEquals(expResult.get(i).getAlkuminuutti(),result.get(i).getAlkuminuutti());
            assertEquals(expResult.get(i).getAlkupaiva(),result.get(i).getAlkupaiva());
            assertEquals(expResult.get(i).getAlkutunti(),result.get(i).getAlkutunti());
            assertEquals(expResult.get(i).getLoppuaika(),result.get(i).getLoppuaika());
            assertEquals(expResult.get(i).getLoppupaiva(),result.get(i).getLoppupaiva());
            assertEquals(expResult.get(i).getLopputunti(),result.get(i).getLopputunti());
            assertEquals(expResult.get(i).getNimi(),result.get(i).getNimi());
            assertEquals(expResult.get(i).getPaikka(),result.get(i).getPaikka());
            assertEquals(expResult.get(i).getPaiva(),result.get(i).getPaiva());
            assertEquals(expResult.get(i).getPaivaIndex(),result.get(i).getPaivaIndex());
            assertEquals(expResult.get(i).getTyyppi(),result.get(i).getTyyppi());
        }
    }

    /**
     * Test of lisaaTapahtuma method, of class Kurssi.
     */
    @Test
    public void testLisaaTapahtuma() {
        System.out.println("lisaaTapahtuma");

        Tapahtuma t1 = new Tapahtuma("Ohtu Luento", "A111", 1, 10, 15, 1, 1, 2011, 11, 00, 1, 5, 2011);
        Tapahtuma t2 = new Tapahtuma("Ohtu Luento", "A111", 1, 12, 15, 3, 1, 2011, 13, 59, 3, 5, 2011);
        Tapahtuma t3 = new Tapahtuma("Ohtu Luento", "A111", 1, 12, 15, 2, 1, 2011, 13, 59, 3, 5, 2011);

        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        instance.lisaaTapahtuma(t1);instance.lisaaTapahtuma(t2);instance.lisaaTapahtuma(t3);

        assertEquals(3, instance.getTapahtumat().size());
    }

    /**
     * Test of lisaaOpiskelija method, of class Kurssi.
     */
    @Test
    public void testLisaaOpiskelija() {
        System.out.println("lisaaOpiskelija");

        Opiskelija o1 = new Opiskelija("Matti", 123);
        Opiskelija o2 = new Opiskelija("Maija", 456);

        Kurssi instance = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        instance.lisaaOpiskelija(o1);instance.lisaaOpiskelija(o2);

        assertEquals(2, instance.getOpiskelijat().size());
    }
}
